package io.bba.boot.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.bba.boot.framework.page.Paging;
import io.bba.boot.app.dto.ArticleDto;
import io.bba.boot.app.entity.Article;
import io.bba.boot.app.query.ArticleQuery;
import io.bba.boot.app.vo.ArticleVo;
import io.bba.boot.app.query.AppArticleQuery;
import io.bba.boot.app.vo.AppArticleVo;


/**
 * 文章 服务接口
 *
 * @author zs
 * @since 2024-03-22
 */
public interface ArticleService extends IService<Article> {

    /**
     * 添加文章
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addArticle(ArticleDto dto);

    /**
     * 修改文章
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateArticle(ArticleDto dto);

    /**
     * 删除文章
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteArticle(Long id);

    /**
     * 文章详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    ArticleVo getArticleById(Long id);

    /**
     * 文章分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<ArticleVo> getArticlePage(ArticleQuery query);

    /**
     * App文章详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppArticleVo getAppArticleById(Long id);

    /**
     * App文章分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppArticleVo> getAppArticlePage(AppArticleQuery query);

}
